#ifndef STATUSDISPLAYWIDGET_H
#define STATUSDISPLAYWIDGET_H

#include <QWidget>
//#include "Vvl40Protocol.h"
//#include "VvlGeneralProtocol.h"

// 前向声明
class LabeledValueBox;
class QHBoxLayout;

class StatusDisplayWidget : public QWidget
{
    Q_OBJECT

  public:
    explicit StatusDisplayWidget(QWidget *parent = nullptr);
    ~StatusDisplayWidget() = default;

    // 更新状态显示
    void updateStatusDisplay(/*const vvl::proto::payload_mcu_data_full &data*/);

    // 获取推荐尺寸
    QSize sizeHint() const override;

  private:
    void initUI();

    // 状态显示组件
    LabeledValueBox *m_depthDisplay;          // 深度显示
    LabeledValueBox *m_heightDisplay;         // 高度显示
    LabeledValueBox *m_compassDisplay;        // 罗盘显示
    LabeledValueBox *m_pitchStateDisplay;     // 俯仰状态显示
    LabeledValueBox *m_pitchDisplay;          // 俯仰角度显示
    LabeledValueBox *m_rollStateDisplay;      // 横滚状态显示
    LabeledValueBox *m_rollDisplay;           // 横滚角度显示
    LabeledValueBox *m_cameraAngleDisplay;    // 云台角度显示
    LabeledValueBox *m_sonarDisplay;          // 声呐角度显示
    LabeledValueBox *m_waterTempDisplay;      // 水温显示
    LabeledValueBox *m_temperatureDisplay;    // 舱内温度显示
    LabeledValueBox *m_waterLeakDisplay;      // 漏水状态显示
    LabeledValueBox *m_cabinHumidityDisplay;  // 舱内湿度显示
};

#endif  // STATUSDISPLAYWIDGET_H